'use client'; import { usePathname, useSearchParams } from 'next/navigation'; import { useEffect } from 'react'; import { useAppDispatch } from '@akinon/next/redux/hooks'; import { resetHeaderState } from '@akinon/next/redux/reducers/header'; import { closeMiniBasket } from '@akinon/next/redux/reducers/root'; import { ROUTES } from '@theme/routes'; import { GoogleTagManager } from '@next/third-parties/google'; import { pushPageView } from '@theme/utils/gtm'; import { serializeJsonLd } from '@theme/utils/generate-jsonld'; import { DataLayerObserver } from '@theme/components/datalayer-observer'; export default function RootTemplate({ children }: { children: React.ReactNode; }) { const dispatch = useAppDispatch(); const pathname = usePathname(); const searchParams = useSearchParams(); const URL = process.env.NEXT_PUBLIC_URL; const currentUrl = URL + pathname + searchParams; useEffect(() => { dispatch(closeMiniBasket()); dispatch(resetHeaderState()); }, [dispatch, pathname, searchParams]); useEffect(() => { if (pathname === ROUTES.HOME) { window.scrollTo(0, 0); } pushPageView(pathname); }, [pathname]); const jsonLdWebSite = { '@context': 'https://schema.org', '@type': 'WebSite', url: currentUrl, name: 'Project Zero', potentialAction: [ { '@type': 'SearchAction', target: `${URL}/list/?search_text={search_term_string}`, 'query-input': 'required name=search_term_string' } ] }; const jsonLdOrganization = { '@context': 'https://schema.org', '@type': 'Organization', url: currentUrl, name: 'Project Zero', logo: `${URL}/logo.svg` }; return ( <> {/* Google Tag Manager */} {/* End Google Tag Manager */}